/*
 * 该组件专门为 Count 组件生成 action 对象 
 */
import { INCREMENT, DECREMENT } from './constant'

// 同步 action，指 action 的值为 Object 类型的一般对象
export const createIncrementAction = data => ({ type: INCREMENT, data })
export const createDecrementAction = data => ({ type: DECREMENT, data })

// 异步 action，指 action 为函数，异步 action 中一般都会调用同步 action
export const createAsyncInreacementAction = (data, time) => {
    // thunk 中间件会将 store 的 dispath 方法传入到函数入参中
    return (dispatch) => {
        setTimeout(() => {
            dispatch(createIncrementAction(data))
        }, time)
    }
}